﻿//using System;
//using NUnit.Framework;

//namespace Simhopp.Common
//{
//    /// <summary>
//    /// A test class for the Diver class.
//    /// </summary>
//    [TestFixture]
//    public class TestDiver
//    {
//        #region FIELD REGION
//        private Diver defaultDiver;
//        private Diver diver;
//        #endregion
//        #region TEST METHOD REGION
//        [SetUp]
//        public void Init()
//        {
//            defaultDiver = new Diver();
//            diver = new Diver("Harald Treutiger", Genders.Male, 45, "USA", "196908058913");
//        }

//        [Test]
//        public void TestConstructors()
//        {
//            Assert.AreEqual("Harald Treutiger", diver.Name);
//            Assert.AreEqual(Genders.Male, diver.Gender);
//            Assert.AreEqual(45, diver.Age);
//            Assert.AreEqual("USA", diver.Nationality);
//            Assert.AreEqual(196908058913, diver.SocialSecurityNumber);
//            Assert.AreEqual(0, diver.DiveCount);

//            Assert.AreEqual("", defaultDiver.Name);
//            Assert.AreEqual(Genders.DEFAULT, defaultDiver.Gender);
//            Assert.AreEqual(0, defaultDiver.Age);
//            Assert.AreEqual("", defaultDiver.Nationality);
//            Assert.AreEqual(0, defaultDiver.SocialSecurityNumber);
//            Assert.AreEqual(0, defaultDiver.DiveCount);
//        }

//        [Test]
//        public void TestProperties()
//        {
//            defaultDiver.Name = "Lars-Gunvor Bertilsson";
//            defaultDiver.Gender = Genders.Male;
//            defaultDiver.Age = 24;
//            defaultDiver.Nationality = "Sweden";
//            defaultDiver.SocialSecurityNumber = "198911046699";

//            Assert.AreEqual("Lars-Gunvor Bertilsson", defaultDiver.Name);
//            Assert.AreEqual(Genders.Male, defaultDiver.Gender);
//            Assert.AreEqual(24, defaultDiver.Age);
//            Assert.AreEqual("Sweden", defaultDiver.Nationality);
//            Assert.AreEqual(198911046699, defaultDiver.SocialSecurityNumber);
//            Assert.AreEqual(0, defaultDiver.DiveCount);
//        } 

//        [Test]
//        public void TestRemoveAllDives()
//        {
//            defaultDiver.RemoveAllDives();
//            defaultDiver.AddDive(new Dive());
//            defaultDiver.AddDive(new Dive());
//            defaultDiver.AddDive(new Dive());
//            Assert.AreEqual(3, defaultDiver.DiveCount);

//            defaultDiver.RemoveAllDives();
//            Assert.AreEqual(0, defaultDiver.DiveCount);
//        }

//        [Test, ExpectedException(typeof(DiveListFullException))]
//        public void TestAddDiveTooMany()
//        {
//            defaultDiver.RemoveAllDives();
//            defaultDiver.AddDive(new Dive());
//            defaultDiver.AddDive(new Dive());
//            defaultDiver.AddDive(new Dive());
//            defaultDiver.AddDive(new Dive());
//            //This should throw an exception, since the number of dives in the list will be one too many.
//        }

//        [Test, ExpectedException(typeof(NotSupportedException))]
//        public void TestAddDiveToDivesProperty()
//        {
//            defaultDiver.RemoveAllDives();
//            defaultDiver.Dives.Add(new Dive());
//            //This should throw an exception, since the dive list returned from Dives is read only.
//        }

//        [Test, ExpectedException(typeof(NotSupportedException))]
//        public void TestAssignDiveToDivesProperty()
//        {
//            defaultDiver.RemoveAllDives();
//            defaultDiver.Dives[0] = new Dive();
//            //This should throw an exception, since the dive list returned from Dives is read only.
//        }

//        [Test, ExpectedException(typeof(DiveListEmptyException))]
//        public void TestRemoveDiveEmpty()
//        {
//            defaultDiver.RemoveAllDives();
//            defaultDiver.RemoveDive(new Dive());
//            //This should throw an exception, since the list is empty.
//        }

//        [Test]
//        public void TestRemoveDive()
//        {
//            Dive dive = new Dive("001A", "Forward Thrust", Heights.ThreeMetres, 1.0);
//            defaultDiver.RemoveAllDives();
//            defaultDiver.AddDive(dive);
//            Assert.AreEqual(1, defaultDiver.DiveCount);

//            defaultDiver.RemoveDive(dive);
//            Assert.AreEqual(0, defaultDiver.DiveCount);
//        }

//        [TearDown]
//        public void Terminate()
//        {
//        }
//        #endregion
//    }
//}
